/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gradius.Elementos.Naves;

import gradius.Elementos.Coordenada;
import gradius.Elementos.Elemento;
import gradius.InterfaceGrafica.TelaGrafica;
import gradius.Elementos.Tipos.tipoTiro;
import gradius.Elementos.Tiros.Tiro;
import gradius.Elementos.Tiros.TiroFactory;
import java.util.ArrayList;

/** Classe que define as naves, seus atributos e métodos
 * @author Eduardo
 */
public abstract class Nave extends Elemento
{
    private int vidaNave;
    private int incrX;
    private int incrY;

    /** Construtor da classe Nave
     * @param tela - Painel de desenho do jogo
     * @param coordX - Coordenada do eixo horizontal
     * @param coordY - Coordenada do eixo vertical
     * @param tamX - Largura em pixels do elemento no eixo horizontal
     * @param tamY - Largura em pixels do elemento no eixo vertical
     */
    public Nave(TelaGrafica tela,int coordX, int coordY, int tamX, int tamY)
    {
        super(tela,coordX,coordY,tamX,tamY);
    }

    /** Método que retorna a quantidade de vidas da nave(jogador)
     * @return int - Vidas da nave
     */
    public int getVidaNave()
    {
        return this.vidaNave;
    }

    /** Método que seta a quantidade de vidas da nave(jogador)
     * @param vidaNave - Quantidade de vidas que a nave(jogador) possui
     */
    public void setVidaNave(int vidaNave)
    {
        this.vidaNave=vidaNave;
    }

    /** Método que decrementa a quantidade de vidas que a nave possui
     * @param dano - Dano provocado na nave
     */
    public void decrementaVidaNave(int dano)
    {
        this.vidaNave-=dano;
    }

    /** Método getter para incremento de X
     *
     * @return int - Retorna o quanto a coordenada X será incrementada
     */
    public int getIncrX()
    {
        int i = this.incrX;
        return i;
    }

    /** Método getter para incremento de Y
     *
     * @return int - Retorna o quanto a coordenada Y será incrementada
     */
    public int getIncrY()
    {
        int i = this.incrY;
        return i;
    }

    /** Método setter para incremento de X
     *
     * @param incrX - incremento da coordenada do eixo horizontal
     */
    public void setIncrX(int incrX)
    {
        this.incrX = incrX;
    }

    /** Método setter para incremento de Y
     *
     * @param incrX - incremento da coordenada do eixo vertical
     */
    public void setIncrY(int incrY)
    {
        this.incrY = incrY;
    }

    /** Método que da movimento a nave
     *
     */
    public void movimenta()
    {
    }
}
